
#include "UnityMath.h"


ostream& operator<<(ostream& out, const Vector2f& v2) {
	out << v2.x << "\t" << v2.y << endl;
	return out;
}
ostream& operator<<(ostream& out, const Vector3f& v3) {
	out << v3.x << "\t" << v3.y << "\t" << v3.z <<  endl;
	return out;
}
ostream& operator<<(ostream& out, const Vector4f& v4) {
	out << v4.x << "\t" << v4.y << "\t" << v4.z << "\t" << v4.w <<  endl;
	return out;
}
ostream& operator<<(ostream& out, const Quaternionf& q) {
	out << q.x << "\t" << q.y << "\t" << q.z << "\t" << q.w << endl;
	return out;
}
ostream& operator<<(ostream& out, const Matrix3x3f& mat3) {
	const float* m = mat3.m_Data;
	cout << m[0] << "\t" << m[3] << "\t" << m[6] << endl;
	cout << m[1] << "\t" << m[4] << "\t" << m[7] << endl;
	cout << m[2] << "\t" << m[5] << "\t" << m[8] << endl;
	return out;
}
ostream& operator<<(ostream& out, const Matrix4x4f& mat4) {
	const float* m = mat4.m_Data;
	cout << m[0] << "\t" << m[4] << "\t" << m[8] << "\t" << m[12] <<  endl;
	cout << m[1] << "\t" << m[5] << "\t" << m[9] << "\t" << m[13] << endl;
	cout << m[2] << "\t" << m[6] << "\t" << m[10] << "\t" << m[14] << endl;
	cout << m[3] << "\t" << m[7] << "\t" << m[11] << "\t" << m[15] << endl;
	return out;
}